'use strict'

const path = require('path')
// const defaultSettings = require('./src/settings.js')
const productionGzipExtensions = ["js", "css", "scss"]
function resolve(dir) {
  return path.join(__dirname, dir)
}

// const name = defaultSettings.title || 'EKb' // page title
const name = 'Ekb' // page title

const targetUrl = process.env.VUE_APP_BASE_API
const nodeEnv = process.env.NODE_ENV
// All configuration item explanations can be find in https://cli.vuejs.org/config/
module.exports = {
  runtimeCompiler: true,
  publicPath: '/',
  outputDir: 'dist',
  assetsDir: 'Public/shipPrintStatic',
  lintOnSave: nodeEnv === 'development',
  // lintOnSave: false,
  productionSourceMap: false, // 线上调试 修改为true , 同时 UglifyJsPlugin 中 sourceMap 设为true
  // CSS 相关选项
  css: {
    // 将组件内的 CSS 提取到一个单独的 CSS 文件 (只用在生产环境中)
    // 也可以是一个传递给 `extract-text-webpack-plugin` 的选项对象
    extract: true,
    // 是否开启 CSS source map？
    sourceMap: false,
    // 为预处理器的 loader 传递自定义选项。比如传递给
    // sass-loader 时，使用 `{ sass: { ... } }`。
    loaderOptions: {},
    requireModuleExtension: true
  },
  devServer: {
    overlay: {
      warnings: true, // true 则书写不规范，强势终止运行，强规范
      errors: true
    },
    // port: port,
    open: false,
   
  },
  // 在多核机器下会默认开启。
  parallel: require('os').cpus().length > 1,
  configureWebpack: config => {
    config.name = name
    config.resolve = {
      extensions: ['.js', '.vue', '.json', '.css', 'scss'], // 省略文件后缀
      alias: {
        '@': resolve('src')
      }
    }
   
  },
  chainWebpack(config) {
    // 预加载
    config.plugin('preload').tap(() => [{
      rel: 'preload',
      // 忽略 runtime.js
      // https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/cli-service/lib/config/app.js#L171
      fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/],
      include: 'initial'
    }])

    // 有太多页面时，去掉预请求，减少请求
    config.plugins.delete('prefetch')
    // set svg-sprite-loader
    config.module
      .rule('svg')
      .exclude.add(resolve('src/assets/icons/svg-icon'))
      .end()
    config.module
      .rule('icon')
      .test(/\.svg$/)
      .include.add(resolve('src/assets/icons/svg-icon'))
      .end()
      .use('svg-sprite-loader')
      .loader('svg-sprite-loader')
      .options({
        symbolId: 'icon-[name]'
      })
      .end()
  }
}
